#include <stdio.h>

int main()
{  

    int i,j;

    printf("     |");//行与列交叉部分的空白

    for ( i = 1; i <=9; i++)
    {
        printf("%5d",i);//第一行输出1、2、3..中间隔开5个字符
    }
    printf("\n");

    for ( i = 0; i <=9 ; i++)
    {
        printf("-----");//第一行下划线
        
    }
    printf("\n");


    /*  下面算术包含3部分：1.左边列的表示  2.计算部分空白的表示  3.计算的结果显示 */
    for ( i = 1; i <=9 ; i++)
    {
        printf("%5d|",i);//显示列

        for ( j = 1; j < i ; j++)
        {
            printf("     ");//计算部分空白的表示
            
        }

        for( ; j<=9 ; j++)
        {
            printf("%5d",i*j);//计算结果
        }
        
        printf("\n");//每次行的算术部分结束后的换行，以上3个输出为一行内容
    }

    /* 计算机的运算结果需要一行一行表示出来，读取命令也需要一个一个来读取，不能想象一下子把整体框架直接完成。*/
    return 0;
}